package com.example.demo.controller;

import com.example.demo.service.UserService;
import jakarta.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import com.example.demo.pojo.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.Optional;

@Controller
public class UserController {

    @Autowired
    private UserService userService; // 注入 UserService
    @GetMapping("/user/{username}")
    public String userProfile(@PathVariable String username, Model model) {
        // 根据 username 查询用户信息
        Optional<User> userOptional = userService.findByUsername(username);
        if (userOptional.isPresent()) {
            // 将用户信息传递给模板
            System.out.println("转入user/username" );
            model.addAttribute("user", userOptional.get());
            return "user-profile"; // 返回用户信息页面
        } else {
            return "redirect:/error"; // 用户不存在，跳转到错误页面
        }
    }
    // 用户信息页面
    @GetMapping("/user-profile")
    public String profile(HttpSession session, Model model) {
        // 从会话中获取当前用户对象
        User currentUser = (User) session.getAttribute("currentUser");
        System.out.println("Current User in /user-profile: " + currentUser); // 打印 currentUser
        if (currentUser != null) {
            // 将用户信息传递给模板
            model.addAttribute("user", currentUser);
            return "user-profile"; // 返回用户信息页面
        } else {
            // 未登录，重定向到登录页面
            return "redirect:/user-login";
        }
    }

    @GetMapping("/logout")
    public String logout(HttpSession session) {
        // 清除会话中的用户信息
        session.removeAttribute("currentUser");
        // 可选：使会话失效
        session.invalidate();
        return "redirect:/login"; // 重定向到登录页面
    }
}
